/*
SPDX-License-Identifier: Apache-2.0

Copyright Contributors to the Submariner project.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

// This file is auto-generated by yamls2go.go
package embeddedyamls

const (
	Deploy_crds_submariner_io_brokers_yaml = `
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: brokers.submariner.io
spec:
  group: submariner.io
  names:
    kind: Broker
    listKind: BrokerList
    plural: brokers
    singular: broker
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Broker is the Schema for the brokers API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: BrokerSpec defines the desired state of Broker.
            properties:
              components:
                items:
                  type: string
                type: array
              defaultCustomDomains:
                items:
                  type: string
                type: array
              defaultGlobalnetClusterSize:
                type: integer
              globalnetCIDRRange:
                type: string
              globalnetEnabled:
                type: boolean
            type: object
          status:
            description: BrokerStatus defines the observed state of Broker
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
`
	Deploy_crds_submariner_io_submariners_yaml = `
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: submariners.submariner.io
spec:
  group: submariner.io
  names:
    kind: Submariner
    listKind: SubmarinerList
    plural: submariners
    singular: submariner
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Submariner is the Schema for the submariners API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: SubmarinerSpec defines the desired state of Submariner
            properties:
              broker:
                type: string
              brokerK8sApiServer:
                type: string
              brokerK8sApiServerToken:
                type: string
              brokerK8sCA:
                type: string
              brokerK8sInsecure:
                type: boolean
              brokerK8sRemoteNamespace:
                type: string
              brokerK8sSecret:
                type: string
              cableDriver:
                type: string
              ceIPSecDebug:
                type: boolean
              ceIPSecForceUDPEncaps:
                type: boolean
              ceIPSecIKEPort:
                type: integer
              ceIPSecNATTPort:
                type: integer
              ceIPSecPSK:
                type: string
              ceIPSecPSKSecret:
                type: string
              ceIPSecPreferredServer:
                type: boolean
              clusterCIDR:
                type: string
              clusterID:
                type: string
              colorCodes:
                type: string
              connectionHealthCheck:
                properties:
                  enabled:
                    type: boolean
                  intervalSeconds:
                    description: The interval at which health check pings are sent.
                    format: int64
                    type: integer
                  maxPacketLossCount:
                    description: The maximum number of packets lost at which the health
                      checker will mark the connection as down.
                    format: int64
                    type: integer
                type: object
              coreDNSCustomConfig:
                properties:
                  configMapName:
                    type: string
                  namespace:
                    type: string
                type: object
              customDomains:
                items:
                  type: string
                type: array
                x-kubernetes-list-type: set
              debug:
                type: boolean
              globalCIDR:
                type: string
              imageOverrides:
                additionalProperties:
                  type: string
                type: object
              loadBalancerEnabled:
                type: boolean
              namespace:
                type: string
              natEnabled:
                type: boolean
              repository:
                type: string
              serviceCIDR:
                type: string
              serviceDiscoveryEnabled:
                type: boolean
              version:
                type: string
            required:
            - broker
            - brokerK8sApiServer
            - brokerK8sRemoteNamespace
            - ceIPSecDebug
            - clusterCIDR
            - clusterID
            - debug
            - namespace
            - natEnabled
            - serviceCIDR
            type: object
          status:
            description: SubmarinerStatus defines the observed state of Submariner
            properties:
              clusterCIDR:
                type: string
              clusterID:
                type: string
              colorCodes:
                type: string
              deploymentInfo:
                properties:
                  cloudProvider:
                    type: string
                  kubernetesType:
                    type: string
                  kubernetesTypeVersion:
                    type: string
                  kubernetesVersion:
                    type: string
                type: object
              gatewayDaemonSetStatus:
                properties:
                  lastResourceVersion:
                    type: string
                  mismatchedContainerImages:
                    type: boolean
                  nonReadyContainerStates:
                    items:
                      description: ContainerState holds a possible state of container.
                        Only one of its members may be specified. If none of them
                        is specified, the default one is ContainerStateWaiting.
                      properties:
                        running:
                          description: Details about a running container
                          properties:
                            startedAt:
                              description: Time at which the container was last (re-)started
                              format: date-time
                              type: string
                          type: object
                        terminated:
                          description: Details about a terminated container
                          properties:
                            containerID:
                              description: Container's ID in the format 'docker://<container_id>'
                              type: string
                            exitCode:
                              description: Exit status from the last termination of
                                the container
                              format: int32
                              type: integer
                            finishedAt:
                              description: Time at which the container last terminated
                              format: date-time
                              type: string
                            message:
                              description: Message regarding the last termination
                                of the container
                              type: string
                            reason:
                              description: (brief) reason from the last termination
                                of the container
                              type: string
                            signal:
                              description: Signal from the last termination of the
                                container
                              format: int32
                              type: integer
                            startedAt:
                              description: Time at which previous execution of the
                                container started
                              format: date-time
                              type: string
                          required:
                          - exitCode
                          type: object
                        waiting:
                          description: Details about a waiting container
                          properties:
                            message:
                              description: Message regarding why the container is
                                not yet running.
                              type: string
                            reason:
                              description: (brief) reason the container is not yet
                                running.
                              type: string
                          type: object
                      type: object
                    type: array
                  status:
                    description: DaemonSetStatus represents the current status of
                      a daemon set.
                    properties:
                      collisionCount:
                        description: Count of hash collisions for the DaemonSet. The
                          DaemonSet controller uses this field as a collision avoidance
                          mechanism when it needs to create the name for the newest
                          ControllerRevision.
                        format: int32
                        type: integer
                      conditions:
                        description: Represents the latest available observations
                          of a DaemonSet's current state.
                        items:
                          description: DaemonSetCondition describes the state of a
                            DaemonSet at a certain point.
                          properties:
                            lastTransitionTime:
                              description: Last time the condition transitioned from
                                one status to another.
                              format: date-time
                              type: string
                            message:
                              description: A human readable message indicating details
                                about the transition.
                              type: string
                            reason:
                              description: The reason for the condition's last transition.
                              type: string
                            status:
                              description: Status of the condition, one of True, False,
                                Unknown.
                              type: string
                            type:
                              description: Type of DaemonSet condition.
                              type: string
                          required:
                          - status
                          - type
                          type: object
                        type: array
                      currentNumberScheduled:
                        description: 'The number of nodes that are running at least
                          1 daemon pod and are supposed to run the daemon pod. More
                          info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/'
                        format: int32
                        type: integer
                      desiredNumberScheduled:
                        description: 'The total number of nodes that should be running
                          the daemon pod (including nodes correctly running the daemon
                          pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/'
                        format: int32
                        type: integer
                      numberAvailable:
                        description: The number of nodes that should be running the
                          daemon pod and have one or more of the daemon pod running
                          and available (ready for at least spec.minReadySeconds)
                        format: int32
                        type: integer
                      numberMisscheduled:
                        description: 'The number of nodes that are running the daemon
                          pod, but are not supposed to run the daemon pod. More info:
                          https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/'
                        format: int32
                        type: integer
                      numberReady:
                        description: The number of nodes that should be running the
                          daemon pod and have one or more of the daemon pod running
                          and ready.
                        format: int32
                        type: integer
                      numberUnavailable:
                        description: The number of nodes that should be running the
                          daemon pod and have none of the daemon pod running and available
                          (ready for at least spec.minReadySeconds)
                        format: int32
                        type: integer
                      observedGeneration:
                        description: The most recent generation observed by the daemon
                          set controller.
                        format: int64
                        type: integer
                      updatedNumberScheduled:
                        description: The total number of nodes that are running updated
                          daemon pod
                        format: int32
                        type: integer
                    required:
                    - currentNumberScheduled
                    - desiredNumberScheduled
                    - numberMisscheduled
                    - numberReady
                    type: object
                required:
                - mismatchedContainerImages
                type: object
              gateways:
                items:
                  properties:
                    connections:
                      items:
                        properties:
                          endpoint:
                            properties:
                              backend:
                                type: string
                              backend_config:
                                additionalProperties:
                                  type: string
                                type: object
                              cable_name:
                                type: string
                              cluster_id:
                                maxLength: 63
                                minLength: 1
                                type: string
                              healthCheckIP:
                                type: string
                              hostname:
                                type: string
                              nat_enabled:
                                type: boolean
                              private_ip:
                                type: string
                              public_ip:
                                type: string
                              subnets:
                                items:
                                  type: string
                                type: array
                            required:
                            - backend
                            - cable_name
                            - cluster_id
                            - hostname
                            - nat_enabled
                            - private_ip
                            - public_ip
                            - subnets
                            type: object
                          latencyRTT:
                            description: LatencySpec describes the round trip time
                              information for a packet between the gateway pods of
                              two clusters.
                            properties:
                              average:
                                type: string
                              last:
                                type: string
                              max:
                                type: string
                              min:
                                type: string
                              stdDev:
                                type: string
                            type: object
                          status:
                            type: string
                          statusMessage:
                            type: string
                          usingIP:
                            type: string
                          usingNAT:
                            type: boolean
                        required:
                        - endpoint
                        - status
                        - statusMessage
                        type: object
                      type: array
                    haStatus:
                      type: string
                    localEndpoint:
                      properties:
                        backend:
                          type: string
                        backend_config:
                          additionalProperties:
                            type: string
                          type: object
                        cable_name:
                          type: string
                        cluster_id:
                          maxLength: 63
                          minLength: 1
                          type: string
                        healthCheckIP:
                          type: string
                        hostname:
                          type: string
                        nat_enabled:
                          type: boolean
                        private_ip:
                          type: string
                        public_ip:
                          type: string
                        subnets:
                          items:
                            type: string
                          type: array
                      required:
                      - backend
                      - cable_name
                      - cluster_id
                      - hostname
                      - nat_enabled
                      - private_ip
                      - public_ip
                      - subnets
                      type: object
                    statusFailure:
                      type: string
                    version:
                      type: string
                  required:
                  - connections
                  - haStatus
                  - localEndpoint
                  - statusFailure
                  - version
                  type: object
                type: array
              globalCIDR:
                type: string
              globalnetDaemonSetStatus:
                properties:
                  lastResourceVersion:
                    type: string
                  mismatchedContainerImages:
                    type: boolean
                  nonReadyContainerStates:
                    items:
                      description: ContainerState holds a possible state of container.
                        Only one of its members may be specified. If none of them
                        is specified, the default one is ContainerStateWaiting.
                      properties:
                        running:
                          description: Details about a running container
                          properties:
                            startedAt:
                              description: Time at which the container was last (re-)started
                              format: date-time
                              type: string
                          type: object
                        terminated:
                          description: Details about a terminated container
                          properties:
                            containerID:
                              description: Container's ID in the format 'docker://<container_id>'
                              type: string
                            exitCode:
                              description: Exit status from the last termination of
                                the container
                              format: int32
                              type: integer
                            finishedAt:
                              description: Time at which the container last terminated
                              format: date-time
                              type: string
                            message:
                              description: Message regarding the last termination
                                of the container
                              type: string
                            reason:
                              description: (brief) reason from the last termination
                                of the container
                              type: string
                            signal:
                              description: Signal from the last termination of the
                                container
                              format: int32
                              type: integer
                            startedAt:
                              description: Time at which previous execution of the
                                container started
                              format: date-time
                              type: string
                          required:
                          - exitCode
                          type: object
                        waiting:
                          description: Details about a waiting container
                          properties:
                            message:
                              description: Message regarding why the container is
                                not yet running.
                              type: string
                            reason:
                              description: (brief) reason the container is not yet
                                running.
                              type: string
                          type: object
                      type: object
                    type: array
                  status:
                    description: DaemonSetStatus represents the current status of
                      a daemon set.
                    properties:
                      collisionCount:
                        description: Count of hash collisions for the DaemonSet. The
                          DaemonSet controller uses this field as a collision avoidance
                          mechanism when it needs to create the name for the newest
                          ControllerRevision.
                        format: int32
                        type: integer
                      conditions:
                        description: Represents the latest available observations
                          of a DaemonSet's current state.
                        items:
                          description: DaemonSetCondition describes the state of a
                            DaemonSet at a certain point.
                          properties:
                            lastTransitionTime:
                              description: Last time the condition transitioned from
                                one status to another.
                              format: date-time
                              type: string
                            message:
                              description: A human readable message indicating details
                                about the transition.
                              type: string
                            reason:
                              description: The reason for the condition's last transition.
                              type: string
                            status:
                              description: Status of the condition, one of True, False,
                                Unknown.
                              type: string
                            type:
                              description: Type of DaemonSet condition.
                              type: string
                          required:
                          - status
                          - type
                          type: object
                        type: array
                      currentNumberScheduled:
                        description: 'The number of nodes that are running at least
                          1 daemon pod and are supposed to run the daemon pod. More
                          info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/'
                        format: int32
                        type: integer
                      desiredNumberScheduled:
                        description: 'The total number of nodes that should be running
                          the daemon pod (including nodes correctly running the daemon
                          pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/'
                        format: int32
                        type: integer
                      numberAvailable:
                        description: The number of nodes that should be running the
                          daemon pod and have one or more of the daemon pod running
                          and available (ready for at least spec.minReadySeconds)
                        format: int32
                        type: integer
                      numberMisscheduled:
                        description: 'The number of nodes that are running the daemon
                          pod, but are not supposed to run the daemon pod. More info:
                          https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/'
                        format: int32
                        type: integer
                      numberReady:
                        description: The number of nodes that should be running the
                          daemon pod and have one or more of the daemon pod running
                          and ready.
                        format: int32
                        type: integer
                      numberUnavailable:
                        description: The number of nodes that should be running the
                          daemon pod and have none of the daemon pod running and available
                          (ready for at least spec.minReadySeconds)
                        format: int32
                        type: integer
                      observedGeneration:
                        description: The most recent generation observed by the daemon
                          set controller.
                        format: int64
                        type: integer
                      updatedNumberScheduled:
                        description: The total number of nodes that are running updated
                          daemon pod
                        format: int32
                        type: integer
                    required:
                    - currentNumberScheduled
                    - desiredNumberScheduled
                    - numberMisscheduled
                    - numberReady
                    type: object
                required:
                - mismatchedContainerImages
                type: object
              loadBalancerStatus:
                properties:
                  status:
                    description: LoadBalancerStatus represents the status of a load-balancer.
                    properties:
                      ingress:
                        description: Ingress is a list containing ingress points for
                          the load-balancer. Traffic intended for the service should
                          be sent to these ingress points.
                        items:
                          description: 'LoadBalancerIngress represents the status
                            of a load-balancer ingress point: traffic intended for
                            the service should be sent to an ingress point.'
                          properties:
                            hostname:
                              description: Hostname is set for load-balancer ingress
                                points that are DNS based (typically AWS load-balancers)
                              type: string
                            ip:
                              description: IP is set for load-balancer ingress points
                                that are IP based (typically GCE or OpenStack load-balancers)
                              type: string
                          type: object
                        type: array
                    type: object
                type: object
              natEnabled:
                type: boolean
              networkPlugin:
                type: string
              routeAgentDaemonSetStatus:
                properties:
                  lastResourceVersion:
                    type: string
                  mismatchedContainerImages:
                    type: boolean
                  nonReadyContainerStates:
                    items:
                      description: ContainerState holds a possible state of container.
                        Only one of its members may be specified. If none of them
                        is specified, the default one is ContainerStateWaiting.
                      properties:
                        running:
                          description: Details about a running container
                          properties:
                            startedAt:
                              description: Time at which the container was last (re-)started
                              format: date-time
                              type: string
                          type: object
                        terminated:
                          description: Details about a terminated container
                          properties:
                            containerID:
                              description: Container's ID in the format 'docker://<container_id>'
                              type: string
                            exitCode:
                              description: Exit status from the last termination of
                                the container
                              format: int32
                              type: integer
                            finishedAt:
                              description: Time at which the container last terminated
                              format: date-time
                              type: string
                            message:
                              description: Message regarding the last termination
                                of the container
                              type: string
                            reason:
                              description: (brief) reason from the last termination
                                of the container
                              type: string
                            signal:
                              description: Signal from the last termination of the
                                container
                              format: int32
                              type: integer
                            startedAt:
                              description: Time at which previous execution of the
                                container started
                              format: date-time
                              type: string
                          required:
                          - exitCode
                          type: object
                        waiting:
                          description: Details about a waiting container
                          properties:
                            message:
                              description: Message regarding why the container is
                                not yet running.
                              type: string
                            reason:
                              description: (brief) reason the container is not yet
                                running.
                              type: string
                          type: object
                      type: object
                    type: array
                  status:
                    description: DaemonSetStatus represents the current status of
                      a daemon set.
                    properties:
                      collisionCount:
                        description: Count of hash collisions for the DaemonSet. The
                          DaemonSet controller uses this field as a collision avoidance
                          mechanism when it needs to create the name for the newest
                          ControllerRevision.
                        format: int32
                        type: integer
                      conditions:
                        description: Represents the latest available observations
                          of a DaemonSet's current state.
                        items:
                          description: DaemonSetCondition describes the state of a
                            DaemonSet at a certain point.
                          properties:
                            lastTransitionTime:
                              description: Last time the condition transitioned from
                                one status to another.
                              format: date-time
                              type: string
                            message:
                              description: A human readable message indicating details
                                about the transition.
                              type: string
                            reason:
                              description: The reason for the condition's last transition.
                              type: string
                            status:
                              description: Status of the condition, one of True, False,
                                Unknown.
                              type: string
                            type:
                              description: Type of DaemonSet condition.
                              type: string
                          required:
                          - status
                          - type
                          type: object
                        type: array
                      currentNumberScheduled:
                        description: 'The number of nodes that are running at least
                          1 daemon pod and are supposed to run the daemon pod. More
                          info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/'
                        format: int32
                        type: integer
                      desiredNumberScheduled:
                        description: 'The total number of nodes that should be running
                          the daemon pod (including nodes correctly running the daemon
                          pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/'
                        format: int32
                        type: integer
                      numberAvailable:
                        description: The number of nodes that should be running the
                          daemon pod and have one or more of the daemon pod running
                          and available (ready for at least spec.minReadySeconds)
                        format: int32
                        type: integer
                      numberMisscheduled:
                        description: 'The number of nodes that are running the daemon
                          pod, but are not supposed to run the daemon pod. More info:
                          https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/'
                        format: int32
                        type: integer
                      numberReady:
                        description: The number of nodes that should be running the
                          daemon pod and have one or more of the daemon pod running
                          and ready.
                        format: int32
                        type: integer
                      numberUnavailable:
                        description: The number of nodes that should be running the
                          daemon pod and have none of the daemon pod running and available
                          (ready for at least spec.minReadySeconds)
                        format: int32
                        type: integer
                      observedGeneration:
                        description: The most recent generation observed by the daemon
                          set controller.
                        format: int64
                        type: integer
                      updatedNumberScheduled:
                        description: The total number of nodes that are running updated
                          daemon pod
                        format: int32
                        type: integer
                    required:
                    - currentNumberScheduled
                    - desiredNumberScheduled
                    - numberMisscheduled
                    - numberReady
                    type: object
                required:
                - mismatchedContainerImages
                type: object
              serviceCIDR:
                type: string
            required:
            - clusterID
            - natEnabled
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
`
	Deploy_crds_submariner_io_servicediscoveries_yaml = `
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: servicediscoveries.submariner.io
spec:
  group: submariner.io
  names:
    kind: ServiceDiscovery
    listKind: ServiceDiscoveryList
    plural: servicediscoveries
    singular: servicediscovery
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: ServiceDiscovery is the Schema for the servicediscoveries API.
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: ServiceDiscoverySpec defines the desired state of ServiceDiscovery
            properties:
              brokerK8sApiServer:
                type: string
              brokerK8sApiServerToken:
                type: string
              brokerK8sCA:
                type: string
              brokerK8sInsecure:
                type: boolean
              brokerK8sRemoteNamespace:
                type: string
              brokerK8sSecret:
                type: string
              clusterID:
                type: string
              coreDNSCustomConfig:
                properties:
                  configMapName:
                    type: string
                  namespace:
                    type: string
                type: object
              customDomains:
                items:
                  type: string
                type: array
                x-kubernetes-list-type: set
              debug:
                type: boolean
              globalnetEnabled:
                type: boolean
              imageOverrides:
                additionalProperties:
                  type: string
                type: object
              namespace:
                type: string
              repository:
                type: string
              version:
                type: string
            required:
            - brokerK8sApiServer
            - brokerK8sRemoteNamespace
            - clusterID
            - debug
            - namespace
            type: object
          status:
            description: ServiceDiscoveryStatus defines the observed state of ServiceDiscovery
            properties:
              deploymentInfo:
                properties:
                  cloudProvider:
                    type: string
                  kubernetesType:
                    type: string
                  kubernetesTypeVersion:
                    type: string
                  kubernetesVersion:
                    type: string
                type: object
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
`
	Deploy_submariner_crds_submariner_io_clusters_yaml = `
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: clusters.submariner.io
spec:
  group: submariner.io
  names:
    kind: Cluster
    listKind: ClusterList
    plural: clusters
    singular: cluster
  scope: Namespaced
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            properties:
              cluster_cidr:
                items:
                  type: string
                type: array
              cluster_id:
                maxLength: 63
                minLength: 1
                type: string
              color_codes:
                items:
                  type: string
                type: array
              global_cidr:
                items:
                  type: string
                type: array
              service_cidr:
                items:
                  type: string
                type: array
            required:
            - cluster_cidr
            - cluster_id
            - global_cidr
            - service_cidr
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
`
	Deploy_submariner_crds_submariner_io_endpoints_yaml = `
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: endpoints.submariner.io
spec:
  group: submariner.io
  names:
    kind: Endpoint
    listKind: EndpointList
    plural: endpoints
    singular: endpoint
  scope: Namespaced
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            properties:
              backend:
                type: string
              backend_config:
                additionalProperties:
                  type: string
                type: object
              cable_name:
                type: string
              cluster_id:
                maxLength: 63
                minLength: 1
                type: string
              healthCheckIP:
                type: string
              hostname:
                type: string
              nat_enabled:
                type: boolean
              private_ip:
                type: string
              public_ip:
                type: string
              subnets:
                items:
                  type: string
                type: array
            required:
            - backend
            - cable_name
            - cluster_id
            - hostname
            - nat_enabled
            - private_ip
            - public_ip
            - subnets
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
`
	Deploy_submariner_crds_submariner_io_gateways_yaml = `
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: gateways.submariner.io
spec:
  group: submariner.io
  names:
    kind: Gateway
    listKind: GatewayList
    plural: gateways
    singular: gateway
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: High availability status of the Gateway
      jsonPath: .status.haStatus
      name: HA Status
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          status:
            properties:
              connections:
                items:
                  properties:
                    endpoint:
                      properties:
                        backend:
                          type: string
                        backend_config:
                          additionalProperties:
                            type: string
                          type: object
                        cable_name:
                          type: string
                        cluster_id:
                          maxLength: 63
                          minLength: 1
                          type: string
                        healthCheckIP:
                          type: string
                        hostname:
                          type: string
                        nat_enabled:
                          type: boolean
                        private_ip:
                          type: string
                        public_ip:
                          type: string
                        subnets:
                          items:
                            type: string
                          type: array
                      required:
                      - backend
                      - cable_name
                      - cluster_id
                      - hostname
                      - nat_enabled
                      - private_ip
                      - public_ip
                      - subnets
                      type: object
                    latencyRTT:
                      description: LatencySpec describes the round trip time information
                        for a packet between the gateway pods of two clusters.
                      properties:
                        average:
                          type: string
                        last:
                          type: string
                        max:
                          type: string
                        min:
                          type: string
                        stdDev:
                          type: string
                      type: object
                    status:
                      type: string
                    statusMessage:
                      type: string
                    usingIP:
                      type: string
                    usingNAT:
                      type: boolean
                  required:
                  - endpoint
                  - status
                  - statusMessage
                  type: object
                type: array
              haStatus:
                type: string
              localEndpoint:
                properties:
                  backend:
                    type: string
                  backend_config:
                    additionalProperties:
                      type: string
                    type: object
                  cable_name:
                    type: string
                  cluster_id:
                    maxLength: 63
                    minLength: 1
                    type: string
                  healthCheckIP:
                    type: string
                  hostname:
                    type: string
                  nat_enabled:
                    type: boolean
                  private_ip:
                    type: string
                  public_ip:
                    type: string
                  subnets:
                    items:
                      type: string
                    type: array
                required:
                - backend
                - cable_name
                - cluster_id
                - hostname
                - nat_enabled
                - private_ip
                - public_ip
                - subnets
                type: object
              statusFailure:
                type: string
              version:
                type: string
            required:
            - connections
            - haStatus
            - localEndpoint
            - statusFailure
            - version
            type: object
        required:
        - status
        type: object
    served: true
    storage: true
    subresources: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
`
	Deploy_submariner_crds_submariner_io_clusterglobalegressips_yaml = `
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: clusterglobalegressips.submariner.io
spec:
  group: submariner.io
  names:
    kind: ClusterGlobalEgressIP
    listKind: ClusterGlobalEgressIPList
    plural: clusterglobalegressips
    shortNames:
    - cgeip
    singular: clusterglobalegressip
  scope: Cluster
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: ClusterGlobalEgressIP defines a policy for allocating GlobalIPs
          at the cluster level to be used when no GlobalEgressIP applies.
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Spec is the specification of desired behavior.
            properties:
              numGlobalIPs:
                description: The requested number of contiguous GlobalIPs to allocate
                  from the Globalnet CIDR assigned to the cluster. If not specified,
                  defaults to 1.
                maximum: 20
                minimum: 0
                type: integer
            type: object
          status:
            description: The most recently observed status. Read-only.
            properties:
              allocatedIPs:
                description: The list of allocated GlobalIPs.
                items:
                  type: string
                type: array
              conditions:
                items:
                  description: "Condition contains details for one aspect of the current
                    state of this API Resource. --- This struct is intended for direct
                    use as an array at the field path .status.conditions.  For example,
                    type FooStatus struct{     // Represents the observations of a
                    foo's current state.     // Known .status.conditions.type are:
                    \"Available\", \"Progressing\", and \"Degraded\"     // +patchMergeKey=type
                    \    // +patchStrategy=merge     // +listType=map     // +listMapKey=type
                    \    Conditions []metav1.Condition ` + "``" + `json:\"conditions,omitempty\"
                    patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` + "``" + `
                    \n     // other fields }"
                  properties:
                    lastTransitionTime:
                      description: lastTransitionTime is the last time the condition
                        transitioned from one status to another. This should be when
                        the underlying condition changed.  If that is not known, then
                        using the time when the API field changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: message is a human readable message indicating
                        details about the transition. This may be an empty string.
                      maxLength: 32768
                      type: string
                    observedGeneration:
                      description: observedGeneration represents the .metadata.generation
                        that the condition was set based upon. For instance, if .metadata.generation
                        is currently 12, but the .status.conditions[x].observedGeneration
                        is 9, the condition is out of date with respect to the current
                        state of the instance.
                      format: int64
                      minimum: 0
                      type: integer
                    reason:
                      description: reason contains a programmatic identifier indicating
                        the reason for the condition's last transition. Producers
                        of specific condition types may define expected values and
                        meanings for this field, and whether the values are considered
                        a guaranteed API. The value should be a CamelCase string.
                        This field may not be empty.
                      maxLength: 1024
                      minLength: 1
                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                      type: string
                    status:
                      description: status of the condition, one of True, False, Unknown.
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
                        --- Many .condition.type values are consistent across resources
                        like Available, but because arbitrary conditions can be useful
                        (see .node.status.conditions), the ability to deconflict is
                        important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                      maxLength: 316
                      pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                      type: string
                  required:
                  - lastTransitionTime
                  - message
                  - reason
                  - status
                  - type
                  type: object
                type: array
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
`
	Deploy_submariner_crds_submariner_io_globalegressips_yaml = `
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: globalegressips.submariner.io
spec:
  group: submariner.io
  names:
    kind: GlobalEgressIP
    listKind: GlobalEgressIPList
    plural: globalegressips
    shortNames:
    - geip
    singular: globalegressip
  scope: Namespaced
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: GlobalEgressIP defines a policy for allocating GlobalIPs for
          selected pods in the namespace of the GlobalEgressIP object.
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Spec is the specification of the desired behavior.
            properties:
              numberOfIPs:
                description: The requested number of contiguous GlobalIPs to allocate
                  from the Globalnet CIDR assigned to the cluster. If not specified,
                  defaults to 1.
                maximum: 20
                minimum: 0
                type: integer
              podSelector:
                description: Selects specific pods in the namespace of this GlobalEgressIP
                  to which this GlobalEgressIP applies. If not specified, all pods
                  in the namespace are selected. If a pod matches multiple GlobalEgressIP
                  objects, there is no guarantee from which GlobalEgressIP its GlobalIP
                  will be assigned.
                properties:
                  matchExpressions:
                    description: matchExpressions is a list of label selector requirements.
                      The requirements are ANDed.
                    items:
                      description: A label selector requirement is a selector that
                        contains values, a key, and an operator that relates the key
                        and values.
                      properties:
                        key:
                          description: key is the label key that the selector applies
                            to.
                          type: string
                        operator:
                          description: operator represents a key's relationship to
                            a set of values. Valid operators are In, NotIn, Exists
                            and DoesNotExist.
                          type: string
                        values:
                          description: values is an array of string values. If the
                            operator is In or NotIn, the values array must be non-empty.
                            If the operator is Exists or DoesNotExist, the values
                            array must be empty. This array is replaced during a strategic
                            merge patch.
                          items:
                            type: string
                          type: array
                      required:
                      - key
                      - operator
                      type: object
                    type: array
                  matchLabels:
                    additionalProperties:
                      type: string
                    description: matchLabels is a map of {key,value} pairs. A single
                      {key,value} in the matchLabels map is equivalent to an element
                      of matchExpressions, whose key field is "key", the operator
                      is "In", and the values array contains only "value". The requirements
                      are ANDed.
                    type: object
                type: object
            type: object
          status:
            description: The most recently observed status. Read-only.
            properties:
              allocatedIPs:
                description: The list of allocated GlobalIPs.
                items:
                  type: string
                type: array
              conditions:
                items:
                  description: "Condition contains details for one aspect of the current
                    state of this API Resource. --- This struct is intended for direct
                    use as an array at the field path .status.conditions.  For example,
                    type FooStatus struct{     // Represents the observations of a
                    foo's current state.     // Known .status.conditions.type are:
                    \"Available\", \"Progressing\", and \"Degraded\"     // +patchMergeKey=type
                    \    // +patchStrategy=merge     // +listType=map     // +listMapKey=type
                    \    Conditions []metav1.Condition ` + "``" + `json:\"conditions,omitempty\"
                    patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` + "``" + `
                    \n     // other fields }"
                  properties:
                    lastTransitionTime:
                      description: lastTransitionTime is the last time the condition
                        transitioned from one status to another. This should be when
                        the underlying condition changed.  If that is not known, then
                        using the time when the API field changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: message is a human readable message indicating
                        details about the transition. This may be an empty string.
                      maxLength: 32768
                      type: string
                    observedGeneration:
                      description: observedGeneration represents the .metadata.generation
                        that the condition was set based upon. For instance, if .metadata.generation
                        is currently 12, but the .status.conditions[x].observedGeneration
                        is 9, the condition is out of date with respect to the current
                        state of the instance.
                      format: int64
                      minimum: 0
                      type: integer
                    reason:
                      description: reason contains a programmatic identifier indicating
                        the reason for the condition's last transition. Producers
                        of specific condition types may define expected values and
                        meanings for this field, and whether the values are considered
                        a guaranteed API. The value should be a CamelCase string.
                        This field may not be empty.
                      maxLength: 1024
                      minLength: 1
                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                      type: string
                    status:
                      description: status of the condition, one of True, False, Unknown.
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
                        --- Many .condition.type values are consistent across resources
                        like Available, but because arbitrary conditions can be useful
                        (see .node.status.conditions), the ability to deconflict is
                        important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                      maxLength: 316
                      pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                      type: string
                  required:
                  - lastTransitionTime
                  - message
                  - reason
                  - status
                  - type
                  type: object
                type: array
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
`
	Deploy_submariner_crds_submariner_io_globalingressips_yaml = `
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: globalingressips.submariner.io
spec:
  group: submariner.io
  names:
    kind: GlobalIngressIP
    listKind: GlobalIngressIPList
    plural: globalingressips
    shortNames:
    - giip
    singular: globalingressip
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: Global IP Allocated
      jsonPath: .status.allocatedIP
      name: IP
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Spec is the specification of desired behavior of GlobalIngressIP
              object.
            properties:
              podRef:
                description: The reference to a targeted Pod, if applicable.
                properties:
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      TODO: Add other useful fields. apiVersion, kind, uid?'
                    type: string
                type: object
              serviceRef:
                description: The reference to a targeted Service, if applicable.
                properties:
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      TODO: Add other useful fields. apiVersion, kind, uid?'
                    type: string
                type: object
              target:
                description: Specifies the type of the entity targeted by this object.
                type: string
            required:
            - target
            type: object
          status:
            description: Observed status of GlobalIngressIP. Its a read-only field.
            properties:
              allocatedIP:
                description: The GlobalIP allocated to this object.
                type: string
              conditions:
                items:
                  description: "Condition contains details for one aspect of the current
                    state of this API Resource. --- This struct is intended for direct
                    use as an array at the field path .status.conditions.  For example,
                    type FooStatus struct{     // Represents the observations of a
                    foo's current state.     // Known .status.conditions.type are:
                    \"Available\", \"Progressing\", and \"Degraded\"     // +patchMergeKey=type
                    \    // +patchStrategy=merge     // +listType=map     // +listMapKey=type
                    \    Conditions []metav1.Condition ` + "``" + `json:\"conditions,omitempty\"
                    patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` + "``" + `
                    \n     // other fields }"
                  properties:
                    lastTransitionTime:
                      description: lastTransitionTime is the last time the condition
                        transitioned from one status to another. This should be when
                        the underlying condition changed.  If that is not known, then
                        using the time when the API field changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: message is a human readable message indicating
                        details about the transition. This may be an empty string.
                      maxLength: 32768
                      type: string
                    observedGeneration:
                      description: observedGeneration represents the .metadata.generation
                        that the condition was set based upon. For instance, if .metadata.generation
                        is currently 12, but the .status.conditions[x].observedGeneration
                        is 9, the condition is out of date with respect to the current
                        state of the instance.
                      format: int64
                      minimum: 0
                      type: integer
                    reason:
                      description: reason contains a programmatic identifier indicating
                        the reason for the condition's last transition. Producers
                        of specific condition types may define expected values and
                        meanings for this field, and whether the values are considered
                        a guaranteed API. The value should be a CamelCase string.
                        This field may not be empty.
                      maxLength: 1024
                      minLength: 1
                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                      type: string
                    status:
                      description: status of the condition, one of True, False, Unknown.
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
                        --- Many .condition.type values are consistent across resources
                        like Available, but because arbitrary conditions can be useful
                        (see .node.status.conditions), the ability to deconflict is
                        important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                      maxLength: 316
                      pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                      type: string
                  required:
                  - lastTransitionTime
                  - message
                  - reason
                  - status
                  - type
                  type: object
                type: array
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
    subresources: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
`
	Deploy_mcsapi_crds_multicluster_x_k8s_io_serviceexports_yaml = `apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: serviceexports.multicluster.x-k8s.io
spec:
  group: multicluster.x-k8s.io
  scope: Namespaced
  names:
    plural: serviceexports
    singular: serviceexport
    kind: ServiceExport
    shortNames:
      - svcex
  versions:
    - name: v1alpha1
      served: true
      storage: true
      subresources:
        status: {}
      additionalPrinterColumns:
        - name: Age
          type: date
          jsonPath: .metadata.creationTimestamp
      schema:
        openAPIV3Schema:
          description: ServiceExport declares that the Service with the same name and
            namespace as this export should be consumable from other clusters.
          type: object
          properties:
            apiVersion:
              description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
              type: string
            kind:
              description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
              type: string
            metadata:
              type: object
            status:
              description: status describes the current state of an exported service.
                Service configuration comes from the Service that had the same name
                and namespace as this ServiceExport. Populated by the multi-cluster
                service implementation's controller.
              type: object
              properties:
                conditions:
                  type: array
                  items:
                    description: "ServiceExportCondition contains details for the current
                    condition of this service export. \n Once [KEP-1623](https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1623-standardize-conditions)
                    is implemented, this will be replaced by metav1.Condition."
                    type: object
                    required:
                      - status
                      - type
                    properties:
                      lastTransitionTime:
                        type: string
                        format: date-time
                      message:
                        type: string
                      reason:
                        type: string
                      status:
                        description: Status is one of {"True", "False", "Unknown"}
                        type: string
                        enum:
                          - "True"
                          - "False"
                          - Unknown
                      type:
                        description: ServiceExportConditionType identifies a specific
                          condition.
                        type: string
                  x-kubernetes-list-map-keys:
                    - type
                  x-kubernetes-list-type: map
`
	Deploy_mcsapi_crds_multicluster_x_k8s_io_serviceimports_yaml = `apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: serviceimports.multicluster.x-k8s.io
spec:
  group: multicluster.x-k8s.io
  scope: Namespaced
  names:
    plural: serviceimports
    singular: serviceimport
    kind: ServiceImport
    shortNames:
      - svcim
  versions:
    - name: v1alpha1
      served: true
      storage: true
      subresources:
        status: {}
      additionalPrinterColumns:
        - name: Type
          type: string
          description: The type of this ServiceImport
          jsonPath: .spec.type
        - name: IP
          type: string
          description: The VIP for this ServiceImport
          jsonPath: .spec.ips
        - name: Age
          type: date
          jsonPath: .metadata.creationTimestamp
      schema:
        openAPIV3Schema:
          description: ServiceImport describes a service imported from clusters in a
            ClusterSet.
          type: object
          properties:
            apiVersion:
              description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
              type: string
            kind:
              description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
              type: string
            metadata:
              type: object
            spec:
              description: spec defines the behavior of a ServiceImport.
              type: object
              required:
                - ports
                - type
              properties:
                ips:
                  description: ip will be used as the VIP for this service when type
                    is ClusterSetIP.
                  type: array
                  maxItems: 1
                  items:
                    type: string
                ports:
                  type: array
                  items:
                    description: ServicePort represents the port on which the service
                      is exposed
                    type: object
                    required:
                      - port
                    properties:
                      appProtocol:
                        description: The application protocol for this port. This field
                          follows standard Kubernetes label syntax. Un-prefixed names
                          are reserved for IANA standard service names (as per RFC-6335
                          and http://www.iana.org/assignments/service-names). Non-standard
                          protocols should use prefixed names such as mycompany.com/my-custom-protocol.
                          Field can be enabled with ServiceAppProtocol feature gate.
                        type: string
                      name:
                        description: The name of this port within the service. This
                          must be a DNS_LABEL. All ports within a ServiceSpec must have
                          unique names. When considering the endpoints for a Service,
                          this must match the 'name' field in the EndpointPort. Optional
                          if only one ServicePort is defined on this service.
                        type: string
                      port:
                        description: The port that will be exposed by this service.
                        type: integer
                        format: int32
                      protocol:
                        description: The IP protocol for this port. Supports "TCP",
                          "UDP", and "SCTP". Default is TCP.
                        type: string
                  x-kubernetes-list-type: atomic
                sessionAffinity:
                  description: 'Supports "ClientIP" and "None". Used to maintain session
                  affinity. Enable client IP based session affinity. Must be ClientIP
                  or None. Defaults to None. Ignored when type is Headless More info:
                  https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies'
                  type: string
                sessionAffinityConfig:
                  description: sessionAffinityConfig contains session affinity configuration.
                  type: object
                  properties:
                    clientIP:
                      description: clientIP contains the configurations of Client IP
                        based session affinity.
                      type: object
                      properties:
                        timeoutSeconds:
                          description: timeoutSeconds specifies the seconds of ClientIP
                            type session sticky time. The value must be >0 && <=86400(for
                            1 day) if ServiceAffinity == "ClientIP". Default value is
                            10800(for 3 hours).
                          type: integer
                          format: int32
                type:
                  description: type defines the type of this service. Must be ClusterSetIP
                    or Headless.
                  type: string
                  enum:
                    - ClusterSetIP
                    - Headless
            status:
              description: status contains information about the exported services that
                form the multi-cluster service referenced by this ServiceImport.
              type: object
              properties:
                clusters:
                  description: clusters is the list of exporting clusters from which
                    this service was derived.
                  type: array
                  items:
                    description: ClusterStatus contains service configuration mapped
                      to a specific source cluster
                    type: object
                    required:
                      - cluster
                    properties:
                      cluster:
                        description: cluster is the name of the exporting cluster. Must
                          be a valid RFC-1123 DNS label.
                        type: string
                  x-kubernetes-list-map-keys:
                    - cluster
                  x-kubernetes-list-type: map
`
	Config_rbac_submariner_operator_service_account_yaml = `---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: submariner-operator
`
	Config_rbac_submariner_operator_role_yaml = `---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  creationTimestamp: null
  name: submariner-operator
rules:
  - apiGroups:
      - ""
    resources:
      - pods
      - services
      - services/finalizers
      - endpoints
      - persistentvolumeclaims
      - events
      - configmaps
      - secrets
    verbs:
      - '*'
  - apiGroups:
      - apps
    resources:
      - deployments
      - daemonsets
      - replicasets
      - statefulsets
    verbs:
      - '*'
  - apiGroups:
      - monitoring.coreos.com
    resources:
      - servicemonitors
    verbs:
      - get
      - create
  - apiGroups:
      - apps
    resourceNames:
      - submariner-operator
    resources:
      - deployments/finalizers
    verbs:
      - update
  - apiGroups:
      - ""
    resources:
      - pods
    verbs:
      - get
  - apiGroups:
      - apps
    resources:
      - replicasets
    verbs:
      - get
  - apiGroups:
      - submariner.io
    resources:
      - '*'
      - servicediscoveries
    verbs:
      - '*'
`
	Config_rbac_submariner_operator_role_binding_yaml = `---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: submariner-operator
subjects:
  - kind: ServiceAccount
    name: submariner-operator
roleRef:
  kind: Role
  name: submariner-operator
  apiGroup: rbac.authorization.k8s.io
`
	Config_rbac_submariner_operator_cluster_role_yaml = `---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: submariner-operator
rules:
  # submariner-operator updates the config map of core-dns to forward requests to
  # clusterset.local to Lighthouse DNS, also looks at existing configmaps
  # to figure out network settings
  - apiGroups:
      - ""
    resources:
      - configmaps
    verbs:
      - create
      - get
      - list
      - watch
      - update
  - apiGroups:
      - apiextensions.k8s.io
    resources:
      - customresourcedefinitions
    verbs:
      - get
      - list
      - create
      - update
      - delete
      - watch
  - apiGroups:  # pods, services and nodes are looked up to figure out network settings
      - ""
    resources:
      - pods
      - services
      - nodes
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - operator.openshift.io
    resources:
      - dnses
    verbs:
      - get
      - list
      - watch
      - update
  - apiGroups:
      - config.openshift.io
    resources:
      - networks
    verbs:
      - get
      - list
  - apiGroups:
      - ""
    resources:
      - namespaces
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - monitoring.coreos.com
    resources:
      - servicemonitors
    verbs:
      - get
      - create
`
	Config_rbac_submariner_operator_cluster_role_binding_yaml = `---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: submariner-operator
subjects:
  - kind: ServiceAccount
    name: submariner-operator
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: submariner-operator
`
	Config_rbac_submariner_gateway_service_account_yaml = `---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: submariner-gateway
`
	Config_rbac_submariner_gateway_role_yaml = `---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  creationTimestamp: null
  name: submariner-gateway
rules:
  - apiGroups:
      - ""
    resources:
      - pods
      - services
      - services/finalizers
      - endpoints
      - persistentvolumeclaims
      - events
      - configmaps
      - secrets
    verbs:
      - '*'
  - apiGroups:
      - apps
    resources:
      - deployments
      - daemonsets
      - replicasets
      - statefulsets
    verbs:
      - '*'
  - apiGroups:
      - monitoring.coreos.com
    resources:
      - servicemonitors
    verbs:
      - get
      - create
  - apiGroups:
      - apps
    resourceNames:
      - submariner-operator
    resources:
      - deployments/finalizers
    verbs:
      - update
  - apiGroups:
      - ""
    resources:
      - pods
    verbs:
      - get
  - apiGroups:
      - apps
    resources:
      - replicasets
    verbs:
      - get
  - apiGroups:
      - submariner.io
    resources:
      - '*'
      - servicediscoveries
    verbs:
      - '*'
  - apiGroups:
      - lighthouse.submariner.io
    resources:
      - '*'
      - serviceexports
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
`
	Config_rbac_submariner_gateway_role_binding_yaml = `---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: submariner-gateway
subjects:
  - kind: ServiceAccount
    name: submariner-gateway
roleRef:
  kind: Role
  name: submariner-gateway
  apiGroup: rbac.authorization.k8s.io
`
	Config_rbac_submariner_gateway_cluster_role_yaml = `---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: submariner-gateway
rules:
  - apiGroups:
      - ""
    resources:
      - configmaps
    verbs:
      - get
      - list
      - watch
      - create
      - update
  - apiGroups:
      - apiextensions.k8s.io
    resources:
      - customresourcedefinitions
    verbs:
      - get
      - list
      - create
      - update
      - delete
  - apiGroups:  # pods and services are looked up to figure out network settings
      - ""
    resources:
      - pods
      - services
      - nodes
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - operator.openshift.io
    resources:
      - dnses
    verbs:
      - get
      - list
      - watch
      - update
  - apiGroups:
      - config.openshift.io
    resources:
      - networks
    verbs:
      - get
      - list
  - apiGroups:
      - submariner.io
    resources:
      - endpoints
      - gateways
      - clusters
    verbs:
      - get
      - list
      - watch
`
	Config_rbac_submariner_gateway_cluster_role_binding_yaml = `---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: submariner-gateway
subjects:
  - kind: ServiceAccount
    name: submariner-gateway
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: submariner-gateway
`
	Config_rbac_submariner_route_agent_service_account_yaml = `---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: submariner-routeagent
`
	Config_rbac_submariner_route_agent_role_yaml = `---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  creationTimestamp: null
  name: submariner-routeagent
rules:
  - apiGroups:
      - ""
    resources:
      - pods
      - services
      - services/finalizers
      - endpoints
      - persistentvolumeclaims
      - events
      - configmaps
      - secrets
    verbs:
      - '*'
  - apiGroups:
      - apps
    resources:
      - deployments
      - daemonsets
      - replicasets
      - statefulsets
    verbs:
      - '*'
  - apiGroups:
      - monitoring.coreos.com
    resources:
      - servicemonitors
    verbs:
      - get
      - create
  - apiGroups:
      - apps
    resourceNames:
      - submariner-operator
    resources:
      - deployments/finalizers
    verbs:
      - update
  - apiGroups:
      - ""
    resources:
      - pods
    verbs:
      - get
  - apiGroups:
      - apps
    resources:
      - replicasets
    verbs:
      - get
  - apiGroups:
      - submariner.io
    resources:
      - '*'
      - servicediscoveries
    verbs:
      - '*'
  - apiGroups:
      - lighthouse.submariner.io
    resources:
      - '*'
      - serviceexports
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
`
	Config_rbac_submariner_route_agent_role_binding_yaml = `---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: submariner-routeagent
subjects:
  - kind: ServiceAccount
    name: submariner-routeagent
roleRef:
  kind: Role
  name: submariner-routeagent
  apiGroup: rbac.authorization.k8s.io
`
	Config_rbac_submariner_route_agent_cluster_role_yaml = `---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: submariner-routeagent
rules:
  - apiGroups:
      - ""
    resources:
      - configmaps
    verbs:
      - get
      - list
      - watch
      - update
  - apiGroups:
      - apiextensions.k8s.io
    resources:
      - customresourcedefinitions
    verbs:
      - get
      - list
      - create
      - update
      - delete
  - apiGroups:  # pods and services are looked up to figure out network settings
      - ""
    resources:
      - pods
      - services
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - operator.openshift.io
    resources:
      - dnses
    verbs:
      - get
      - list
      - watch
      - update
  - apiGroups:
      - config.openshift.io
    resources:
      - networks
    verbs:
      - get
      - list
  - apiGroups:
      - ""
    verbs:
      - get
      - list
      - watch
      - update
    resources:
      - nodes
`
	Config_rbac_submariner_route_agent_cluster_role_binding_yaml = `---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: submariner-routeagent
subjects:
  - kind: ServiceAccount
    name: submariner-routeagent
roleRef:
  kind: ClusterRole
  name: submariner-routeagent
  apiGroup: rbac.authorization.k8s.io
`
	Config_rbac_submariner_globalnet_service_account_yaml = `---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: submariner-globalnet
`
	Config_rbac_submariner_globalnet_role_yaml = `---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  creationTimestamp: null
  name: submariner-globalnet
rules:
  - apiGroups:
      - ""
    resources:
      - pods
      - services
      - services/finalizers
      - endpoints
      - persistentvolumeclaims
      - events
      - configmaps
      - secrets
    verbs:
      - '*'
  - apiGroups:
      - apps
    resources:
      - deployments
      - daemonsets
      - replicasets
      - statefulsets
    verbs:
      - '*'
  - apiGroups:
      - monitoring.coreos.com
    resources:
      - servicemonitors
    verbs:
      - get
      - create
  - apiGroups:
      - apps
    resourceNames:
      - submariner-operator
    resources:
      - deployments/finalizers
    verbs:
      - update
  - apiGroups:
      - ""
    resources:
      - pods
    verbs:
      - get
  - apiGroups:
      - apps
    resources:
      - replicasets
    verbs:
      - get
  - apiGroups:
      - submariner.io
    resources:
      - '*'
      - servicediscoveries
    verbs:
      - '*'
  - apiGroups:
      - lighthouse.submariner.io
    resources:
      - '*'
      - serviceexports
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
`
	Config_rbac_submariner_globalnet_role_binding_yaml = `---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: submariner-globalnet
subjects:
  - kind: ServiceAccount
    name: submariner-globalnet
roleRef:
  kind: Role
  name: submariner-globalnet
  apiGroup: rbac.authorization.k8s.io
`
	Config_rbac_submariner_globalnet_cluster_role_yaml = `---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  creationTimestamp: null
  name: submariner-globalnet
rules:
  - apiGroups:
      - ""
    resources:
      - pods
      - namespaces
      - nodes
    verbs:
      - get
      - list
      - watch
      - update
  - apiGroups:
      - ""
    resources:
      - services
      - endpoints
    verbs:
      - create
      - get
      - list
      - watch
      - update
      - delete
  - apiGroups:
      - submariner.io
    resources:
      - endpoints
      - clusters
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - submariner.io
    resources:
      - clusterglobalegressips
      - globalegressips
      - globalingressips
    verbs:
      - create
      - get
      - list
      - watch
      - update
      - delete
      - deletecollection
  - apiGroups:
      - multicluster.x-k8s.io
    resources:
      - "serviceexports"
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - network.openshift.io
    resources:
      - service/externalips
    verbs:
      - create
      - get
      - list
      - delete
`
	Config_rbac_submariner_globalnet_cluster_role_binding_yaml = `---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: submariner-globalnet
subjects:
  - kind: ServiceAccount
    name: submariner-globalnet
roleRef:
  kind: ClusterRole
  name: submariner-globalnet
  apiGroup: rbac.authorization.k8s.io
`
	Config_rbac_lighthouse_agent_service_account_yaml = `---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: submariner-lighthouse-agent
`
	Config_rbac_lighthouse_agent_cluster_role_yaml = `---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  creationTimestamp: null
  name: submariner-lighthouse-agent
rules:
  - apiGroups:
      - ""
    resources:
      - services
      - namespaces
      - endpoints
    verbs:
      - get
      - list
      - watch
      - update
  - apiGroups:
      - discovery.k8s.io
    resources:
      - endpointslices
      - endpointslices/restricted
    verbs:
      - create
      - get
      - list
      - watch
      - update
      - delete
      - deletecollection
  - apiGroups:
      - submariner.io
    resources:
      - "gateways"
      - "globalingressips"
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - multicluster.x-k8s.io
    resources:
      - "*"
    verbs:
      - create
      - get
      - list
      - watch
      - update
      - delete
`
	Config_rbac_lighthouse_agent_cluster_role_binding_yaml = `---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: submariner-lighthouse-agent
subjects:
  - kind: ServiceAccount
    name: submariner-lighthouse-agent
roleRef:
  kind: ClusterRole
  name: submariner-lighthouse-agent
  apiGroup: rbac.authorization.k8s.io
`
	Config_rbac_lighthouse_coredns_service_account_yaml = `---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: submariner-lighthouse-coredns
`
	Config_rbac_lighthouse_coredns_cluster_role_yaml = `---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  creationTimestamp: null
  name: submariner-lighthouse-coredns
rules:
  - apiGroups:
      - ""
    resources:
      - services
      - namespaces
      - endpoints
    verbs:
      - get
      - list
      - watch
      - update
  - apiGroups:
      - discovery.k8s.io
    resources:
      - endpointslices
    verbs:
      - create
      - get
      - list
      - watch
      - update
      - delete
      - deletecollection
  - apiGroups:
      - lighthouse.submariner.io
    resources:
      - "*"
    verbs:
      - create
      - get
      - list
      - watch
      - update
      - delete
  - apiGroups:
      - submariner.io
    resources:
      - "gateways"
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - multicluster.x-k8s.io
    resources:
      - "*"
    verbs:
      - create
      - get
      - list
      - watch
      - update
      - delete
`
	Config_rbac_lighthouse_coredns_cluster_role_binding_yaml = `---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: submariner-lighthouse-coredns
subjects:
  - kind: ServiceAccount
    name: submariner-lighthouse-coredns
roleRef:
  kind: ClusterRole
  name: submariner-lighthouse-coredns
  apiGroup: rbac.authorization.k8s.io
`
	Config_rbac_networkplugin_syncer_service_account_yaml = `---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: submariner-networkplugin-syncer
`
	Config_rbac_networkplugin_syncer_cluster_role_yaml = `---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  creationTimestamp: null
  name: submariner-networkplugin-syncer
rules:
  - apiGroups:
      - ""
    resources:
      - configmaps
      - secrets
    verbs:
      - get
  - apiGroups:
      - ""
    resources:
      - nodes
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - submariner.io
    resources:
      - endpoints
    verbs:
      - get
      - list
      - watch
`
	Config_rbac_networkplugin_syncer_cluster_role_binding_yaml = `---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: submariner-networkplugin-syncer
subjects:
  - kind: ServiceAccount
    name: submariner-networkplugin-syncer
roleRef:
  kind: ClusterRole
  name: submariner-networkplugin-syncer
  apiGroup: rbac.authorization.k8s.io
`
	Config_openshift_rbac_submariner_metrics_reader_role_yaml = `---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: submariner-metrics-reader
  namespace: submariner-operator
rules:
  - apiGroups: [""]
    resources: ["pods", "services", "endpoints"]
    verbs: ["get", "list", "watch"]
`
	Config_openshift_rbac_submariner_metrics_reader_role_binding_yaml = `---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-submariner-metrics
subjects:
  - kind: ServiceAccount
    name: prometheus-k8s
    namespace: openshift-monitoring
roleRef:
  kind: Role
  name: submariner-metrics-reader
  apiGroup: rbac.authorization.k8s.io
`
)
